El “Potenciar Trabajo” en datos. Miradas relacionales entre concepciones y números para comprender su constitución

Cynthia Ferrari Mango y Ariana Bardauil

2023-11-02

Resultados

Perfil de los y las titulares del programa

En este apartado, caracterizamos el perfil de los y las titulares teniendo en cuenta la edad, el género y la nacionalidad. En lo que refiere ….. A nivel país, en la siguiente Pirámide Poblacional de los Titulares del potenciar trabajo de Argentina (2020 y 2022).

El 86% de los titulares es Argentino. El 4.7% no tiene información sobre la nacionalidad

Género y sexo

Total pais

## [1] "61.17 %" "38.51 %" "0.18 %"  "0.07 %"  "0.05 %"  "0.03 %"  "100 %"
Distribución del Género en Argentina
Datos de género y frecuencia
Género Cantidad Porcentaje
Mujer 970,555 61.17 %
Varón 611,010 38.51 %
Feminidad trans/travesti 2,867 0.18 %
Masculinidad trans 1,086 0.07 %
No Binarie 721 0.05 %
Otro 437 0.03 %
Total 1,586,676 100 %
## [1] "5111 corresponden a disidencias. Es decir, el 0.32 %"

Provincia de buenos aires

Distribución del género en PBA

## [1] "60.93 %" "38.86 %" "0.1 %"   "0.04 %"  "0.04 %"  "0.03 %"  "100 %"
Distribución del Género en Buenos Aires
Datos de género y frecuencia
Género Cantidad Porcentaje
Mujer 488,894 60.93 %
Varón 311,834 38.86 %
Feminidad trans/travesti 835 0.1 %
Masculinidad trans 360 0.04 %
No Binarie 295 0.04 %
Otro 221 0.03 %
Total 802,439 100 %

Pirámide demográfica

Argentina

Provincia de buenos aires

Titulares por provincia

##  [1] "50.57 %" "5.05 %"  "4.55 %"  "3.8 %"   "3.75 %"  "3.71 %"  "3.66 %" 
##  [8] "3.51 %"  "3.46 %"  "2.55 %"  "2.06 %"  "1.99 %"  "1.97 %"  "1.53 %" 
## [15] "1.34 %"  "1.24 %"  "1.07 %"  "0.92 %"  "0.85 %"  "0.8 %"   "0.6 %"  
## [22] "0.55 %"  "0.29 %"  "0.19 %"  "100 %"
Distribución por Provincia
Cantidad y Porcentaje de titulares
Provincia Cantidad Porcentaje
Buenos Aires 802,380 50.57 %
Tucumán 80,126 5.05 %
Ciudad de Buenos Aires 72,152 4.55 %
Jujuy 60,231 3.8 %
Salta 59,494 3.75 %
Santa Fe 58,883 3.71 %
Chaco 58,009 3.66 %
Córdoba 55,716 3.51 %
Misiones 54,848 3.46 %
Santiago del Estero 40,398 2.55 %
Entre Ríos 32,752 2.06 %
Mendoza 31,513 1.99 %
Corrientes 31,307 1.97 %
San Juan 24,293 1.53 %
Formosa 21,210 1.34 %
Neuquén 19,610 1.24 %
Río Negro 16,970 1.07 %
La Rioja 14,644 0.92 %
Catamarca 13,542 0.85 %
Chubut 12,681 0.8 %
San Luis 9,481 0.6 %
Santa Cruz 8,738 0.55 %
La Pampa 4,601 0.29 %
Tierra del Fuego 3,035 0.19 %
Total 1,586,614 100 %

Evolución de los titulares / permanencia en el programa

Titulares por periodo y jurisdicción gráfico lineal

Distribución geográfica

Porcentaje de titulares por provincia y año
Sobre el total de titulares
Provincias Titulares 2020 Titulares 2021 Titulares 2022 Porcentaje 2020 Porcentaje 2021 Porcentaje 2022
Ciudad Autónoma de Buenos Aires 36986 63105 64817 4.74% 4.62% 4.4%
Buenos Aires 425489 700762 739912 54.5% 51.36% 50.17%
Catamarca 5594 11652 12788 0.72% 0.85% 0.87%
Córdoba 22680 46439 51562 2.91% 3.4% 3.5%
Corrientes 15386 25595 29437 1.97% 1.88% 2%
Chaco 26440 49599 55307 3.39% 3.64% 3.75%
Chubut 4606 10172 11230 0.59% 0.75% 0.76%
Entre Ríos 12207 26690 30759 1.56% 1.96% 2.09%
Formosa 8986 17460 20447 1.15% 1.28% 1.39%
Jujuy 27986 51057 56480 3.58% 3.74% 3.83%
La Pampa 2079 3804 3975 0.27% 0.28% 0.27%
La Rioja 6470 12518 13814 0.83% 0.92% 0.94%
Mendoza 13150 26178 29658 1.68% 1.92% 2.01%
Misiones 23115 45955 51982 2.96% 3.37% 3.52%
Neuquén 7578 15938 17719 0.97% 1.17% 1.2%
Río Negro 7909 14749 15241 1.01% 1.08% 1.03%
Salta 27414 50718 56588 3.51% 3.72% 3.84%
San Juan 11620 21305 22890 1.49% 1.56% 1.55%
San Luis 4540 7868 8793 0.58% 0.58% 0.6%
Santa Cruz 2618 7917 7835 0.34% 0.58% 0.53%
Santa Fe 20495 46041 54784 2.63% 3.37% 3.71%
Santiago del Estero 18670 34547 39144 2.39% 2.53% 2.65%
Tucumán 47670 72016 76991 6.11% 5.28% 5.22%
Tierra del Fuego, Antártida e Islas del Atlántico Sur 1034 2394 2598 0.13% 0.18% 0.18%
Total 780722 1364479 1474751 100% 100% 100%

Mapa en función del % poblacional

Argentina

Porcentaje de titulares por año
En base a proyecciones poblacionales de INDEC
Año Titulares Poblacion Porcentaje
2020 780722 45376763 1.7%
2022 1474751 46234830 3.2%

Buenos Aires

Porcentaje de titulares por año en Buenos Aires
En base a proyecciones poblacionales de INDEC
Año Titulares Poblacion Porcentaje
2020 425489 17541141 2.4%
2022 739912 17875743 4.1%

Montos

https://www.indec.gob.ar/indec/web/Nivel4-Tema-3-5-31

Montos por año
Primer período de cada año
Año Primer periodo Primer monto Monto en precios reales
2020 mar. 2020 8500 2781.86
2021 ene. 2021 10293 2563.59
2022 ene. 2022 16000 2644.49
2023 ene. 2023 32714 2719.42
LS0tDQp0aXRsZTogIkVsIOKAnFBvdGVuY2lhciBUcmFiYWpv4oCdIGVuIGRhdG9zLiBNaXJhZGFzIHJlbGFjaW9uYWxlcyBlbnRyZSBjb25jZXBjaW9uZXMgeSBuw7ptZXJvcyBwYXJhIGNvbXByZW5kZXIgc3UgY29uc3RpdHVjacOzbiINCmF1dGhvcjogICJDeW50aGlhIEZlcnJhcmkgTWFuZ28geSBBcmlhbmEgQmFyZGF1aWwiDQpkYXRlOiAiYHIgU3lzLkRhdGUoKWAiDQpsYW5nOiAiZXMiDQpvdXRwdXQ6DQogIHJtZGZvcm1hdHM6OmRvd25jdXRlOg0KICAgIGxpZ2h0Ym94OiBUUlVFDQogICAgaGlnaGxpZ2h0OiB0YW5nbw0KICAgIHRvYzogMw0KICAgIG51bWJlci1zZWN0aW9uczogVFJVRQ0KICAgIGNvZGUtZm9sZGluZzogaGlkZQ0KICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUNCmVkaXRvcl9vcHRpb25zOiANCiAgbWFya2Rvd246IA0KICAgIHdyYXA6IDcyDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQod2FybmluZz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgZWNobyA9IEZBTFNFKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGphbml0b3IpDQpsaWJyYXJ5KHdhZmZsZSkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShzZikNCmxpYnJhcnkoc3RyaW5ncikNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShnZW9BcikNCmxpYnJhcnkoZ2dyZXBlbCkNCmxpYnJhcnkoZ3QpDQpsaWJyYXJ5KHNjYWxlcykNCmxpYnJhcnkocmVhZHhsKQ0KDQpvcHRpb25zKHNjaXBlbj05OTkpDQpgYGANCg0KIyBSZXN1bHRhZG9zDQoNCiMjIFBlcmZpbCBkZSBsb3MgeSBsYXMgdGl0dWxhcmVzIGRlbCBwcm9ncmFtYQ0KDQpFbiBlc3RlIGFwYXJ0YWRvLCBjYXJhY3Rlcml6YW1vcyBlbCBwZXJmaWwgZGUgbG9zIHkgbGFzIHRpdHVsYXJlcyB0ZW5pZW5kbyBlbiBjdWVudGEgbGEgZWRhZCwgZWwgZ8OpbmVybyB5IGxhIG5hY2lvbmFsaWRhZC4gRW4gbG8gcXVlIHJlZmllcmUg4oCmLi4NCkEgbml2ZWwgcGHDrXMsIGVuIGxhIHNpZ3VpZW50ZSBQaXLDoW1pZGUgUG9ibGFjaW9uYWwgZGUgbG9zIFRpdHVsYXJlcyBkZWwgcG90ZW5jaWFyIHRyYWJham8gZGUgQXJnZW50aW5hICgyMDIwIHkgMjAyMikuDQoNCg0KRWwgODYlIGRlIGxvcyB0aXR1bGFyZXMgZXMgQXJnZW50aW5vLiBFbCA0LjclIG5vIHRpZW5lIGluZm9ybWFjacOzbiBzb2JyZSBsYSBuYWNpb25hbGlkYWQNCg0KPCEtLSBIYWJyw61hIHF1ZSBsaW1waWFybG8uIE5vIHRpZW5lIHNlbnRpZG8gdXNhcmxvIC0tPg0KDQojIyMgR8OpbmVybyB5IHNleG8gey50YWJzZXR9DQoNCiMjIyMgVG90YWwgcGFpcw0KYGBge3J9DQoNCiN0aXR1bGFyZXMgc2UgcHVlZGVuIHNhY2FyIGRhdG9zIGRlbCBwZXJmaWwgZGUgbGEgcGVyc29uYSAoc2V4bywgZWRhZCB5IG11bmljaXBpbykNCg0KdGl0dWxhcmVzX3BlcnNvbmFzIDwtIHJlYWRfY3N2KCJkYXRhL3BvdGVuY2lhci10cmFiYWpvLWxpc3RhZG8tdGl0dWxhcmVzLTIwMjItMTAtMDEuY3N2IikNCg0KIyBTZXhvDQpiYXNlX3NleG8gPC0gdGl0dWxhcmVzX3BlcnNvbmFzIHw+DQogICMgSW1wdXRvIHNleG8gYSBnw6luZXJvIGVuIGxvcyBjYXNvcyBlbiBsb3MgcXVlIG5vIGhheSB2YWxvcmVzDQogIG11dGF0ZShnZW5lcm8gPSBpZmVsc2UoaXMubmEoZ2VuZXJvKSwgc2V4bywgZ2VuZXJvKSwNCiAgICAgICAgIGdlbmVybyA9aWZlbHNlKGdlbmVybyA9PSAiRiIsICJNdWplciIsIGlmZWxzZShnZW5lcm8gPT0gIk0iLCAiVmFyw7NuIiwgZ2VuZXJvKSkpDQoNCg0KIyBNdWVzdHJvIGxhIGRpc3RyaWJ1Y2nDs24gZGVsIGfDqW5lcm8NCnRhYmxhX2dlbmVybyA8LSBiYXNlX3NleG8gfD4gDQogIHRhYnlsKGdlbmVybykgfD4gDQogIGFycmFuZ2UoZGVzYyhuKSkgICAlPiUNCiAgYWRvcm5fdG90YWxzIHw+IA0KICBtdXRhdGUocGVyY2VudCA9IHByaW50KHBhc3RlKHJvdW5kKHBlcmNlbnQqMTAwLDIpLCAiJSIpKSkgfD4gDQogIHJlbmFtZSgNCiAgICAiQ2FudGlkYWQiID0gbiwNCiAgICAiUG9yY2VudGFqZSIgPSBwZXJjZW50LA0KICAgICJHw6luZXJvIiA9IGdlbmVybw0KICApIHw+IA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIkRpc3RyaWJ1Y2nDs24gZGVsIEfDqW5lcm8gZW4gQXJnZW50aW5hIiwNCiAgICBzdWJ0aXRsZSA9ICJEYXRvcyBkZSBnw6luZXJvIHkgZnJlY3VlbmNpYSINCiAgKSAlPiUNCiAgZm10X251bWJlcigNCiAgICBjb2x1bW5zID0gYyhDYW50aWRhZCksDQogICAgZGVjaW1hbHMgPSAwKSB8PiANCiAgZm10X251bWJlcigNCiAgICBjb2x1bW5zID0gYyhQb3JjZW50YWplKSwNCiAgICBkZWNpbWFscyA9IDIpDQoNCiNtdWVzdHJvDQp0YWJsYV9nZW5lcm8NCg0KIyBHdWFyZG8gdGFibGENCmd0c2F2ZSh0YWJsYV9nZW5lcm8sZmlsZW5hbWUgPSAiZ3JhZmljb3MvZGlzdHJpYnVjaW9uX2dlbmVyby5odG1sIikNCg0KIyBCb3Jybw0Kcm0odGFibGFfZ2VuZXJvKQ0KDQojUG9yY2VudGFqZSBkZSBkaXNjaWRlbmNpYXMNCnByaW50KHBhc3RlKDI4NjcrMTA4Nis3MjErNDM3LCAiY29ycmVzcG9uZGVuIGEgZGlzaWRlbmNpYXMuIEVzIGRlY2lyLCBlbCIsIChyb3VuZCgoKDI4NjcrMTA4Nis3MjErNDM3KS8xNTg2Njc2KSoxMDAsMikpLCIlIikpDQoNCg0KYGBgDQoNCiMjIyMgUHJvdmluY2lhIGRlIGJ1ZW5vcyBhaXJlcyANCg0KRGlzdHJpYnVjacOzbiBkZWwgZ8OpbmVybyBlbiBQQkENCmBgYHtyfQ0KYmFzZV9zZXhvIHw+DQogIGZpbHRlcihwcm92aW5jaWFfaWQgPT0gIjA2IikgJT4lIA0KICB0YWJ5bChnZW5lcm8pIHw+IA0KICBhcnJhbmdlKGRlc2MobikpICAgJT4lDQogIGFkb3JuX3RvdGFscyB8PiANCiAgbXV0YXRlKHBlcmNlbnQgPSBwcmludChwYXN0ZShyb3VuZChwZXJjZW50KjEwMCwyKSwgIiUiKSkpIHw+IA0KICByZW5hbWUoDQogICAgIkNhbnRpZGFkIiA9IG4sDQogICAgIlBvcmNlbnRhamUiID0gcGVyY2VudCwNCiAgICAiR8OpbmVybyIgPSBnZW5lcm8NCiAgKSB8PiANCiAgZ3QoKSAlPiUNCiAgdGFiX2hlYWRlcigNCiAgICB0aXRsZSA9ICJEaXN0cmlidWNpw7NuIGRlbCBHw6luZXJvIGVuIEJ1ZW5vcyBBaXJlcyIsDQogICAgc3VidGl0bGUgPSAiRGF0b3MgZGUgZ8OpbmVybyB5IGZyZWN1ZW5jaWEiDQogICkgJT4lDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoQ2FudGlkYWQpLA0KICAgIGRlY2ltYWxzID0gMCkgfD4gDQogIGZtdF9udW1iZXIoDQogICAgY29sdW1ucyA9IGMoUG9yY2VudGFqZSksDQogICAgZGVjaW1hbHMgPSAyKQ0KYGBgDQoNCiMjIyBQaXLDoW1pZGUgZGVtb2dyw6FmaWNhIHsudGFic2V0fQ0KDQojIyMjIEFyZ2VudGluYQ0KYGBge3J9DQoNCiMgQ3JlbyBlbCByYW5nbyBldGFyaW8gcGFyYSBoYWNlciBsYSBwaXJhbWlkZSBwb2JsYWNpb25hbA0KdGl0dWxhcmVzX3BlcnNvbmFzIDwtIHRpdHVsYXJlc19wZXJzb25hcyB8PiANCiAgZmlsdGVyKCFpcy5uYShlZGFkKSkgfD4gDQogIG11dGF0ZShyYW5nb19ldGFyaW8gPSBjYXNlX3doZW4oDQogICAgICBlZGFkIDwgMjUgfiAiMTgtMjQiLA0KICAgICAgZWRhZCA8IDM1IH4gIjI1LTM0IiwNCiAgICAgIGVkYWQgPCA0NSB+ICIzNS00NCIsDQogICAgICBlZGFkIDwgNTUgfiAiNDUtNTQiLA0KICAgICAgZWRhZCA8IDY1IH4gIjU1LTY0IiwNCiAgICAgIGVkYWQgPj0gNjUgfiAiNjUtNzIiDQogICAgKSwNCiAgICByYW5nb19ldGFyaW8gPSBmYWN0b3IoDQogICAgICByYW5nb19ldGFyaW8sDQogICAgICBsZXZlbHMgPSBjKCIxOC0yNCIsDQogICAgICAgICAgICAgICAgICIyNS0zNCIsDQogICAgICAgICAgICAgICAgICIzNS00NCIsDQogICAgICAgICAgICAgICAgICI0NS01NCIsDQogICAgICAgICAgICAgICAgICI1NS02NCIsDQogICAgICAgICAgICAgICAgICI2NS03MiINCiAgICAgICAgICAgICAgICAgKQ0KICAgICkNCiAgKQ0KDQojZXNxdWlzc2U6OmVzcXVpc3Nlcih4KQ0KDQoNCg0KDQojIEFybW8gbGEgcGlyYW1pZGUNCg0KcGlyYW1pZGVfbmFjIDwtIHRpdHVsYXJlc19wZXJzb25hcyB8Pg0KICBncm91cF9ieShyYW5nb19ldGFyaW8sIHNleG8pIHw+DQogIHN1bW1hcmlzZShOID0gbigpKSB8Pg0KICBtdXRhdGUoTiA9IGlmZWxzZShzZXhvID09ICJNIiwtTiwgTikpIHw+DQogIHJlbmFtZSgNCiAgICAiUmFuZ28gZXRhcmlvIiA9IHJhbmdvX2V0YXJpbywNCiAgICAic2V4byIgPSBzZXhvLA0KICAgICJDYW50aWRhZCBkZSB0aXR1bGFyZXMiID0gTg0KICApIHw+IA0KICBnZ3Bsb3QoKSArDQogIGFlcyh4ID0gYFJhbmdvIGV0YXJpb2AsIHkgPSBgQ2FudGlkYWQgZGUgdGl0dWxhcmVzYCwgZmlsbCA9IHNleG8pICsNCiAgZ2VvbV9jb2woKSArDQogIHNjYWxlX2ZpbGxfbWFudWFsKHZhbHVlcyA9IGMoRiA9ICIjYjIyOTg3IiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNID0gIiMyOTg3YjIiKSkgKw0KIGxhYnMoeCA9ICIgIiwgeSA9ICIgIiwgdGl0bGUgPSAiUGlyYW1pZGUgcG9ibGFjaW9uYWwgZGUgQXJnZW50aW5hIiwNCiAgICAgIHN1YnRpdGxlID0gIlRpdHVsYXJlcyBkZWwgUG90ZW5jaWFyIFRyYWJham8gZW50cmUgZWwgYcOxbyAyMDIwIHkgMjAyMiAoZW4gbWlsZXMpIiwNCiAgICAgIGNhcHRpb24gPSAiRnVlbnRlOiBFbGFib3JhY2nDs24gcHJvcGlhIGVuIGJhc2UgYSBkYXRvcyBhYmllcnRvcyBkZWwgTWluaXN0ZXJpbyBkZSBEZXNhcnJvbGxvIFNvY2lhbCBkZSBsYSBOYWNpw7NuIiwgDQogZmlsbCA9ICJTZXhvIikgICsNCiAgY29vcmRfZmxpcCgpICsNCiAgZ2d0aGVtZXM6OnRoZW1lX3BhbmRlcigpKw0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiLA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2TCwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5jYXB0aW9uID0gZWxlbWVudF90ZXh0KHNpemUgPSA4TCksDQogICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgYXhpcy50aXRsZS54ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5TCksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID04TCkNCiAgKSArDQogIHNjYWxlX3lfY29udGludW91cyhicmVha3MgPSBjKCAtNTAwMDAsIC0xMDAwMDAsIC0xNTAwMDAsIC0yMDAwMDAsIC0yNTAwMDAsIC0zMDAwMDAsIC0zNTAwMDAsMCwgNTAwMDAsIDEwMDAwMCwgMTUwMDAwLCAyMDAwMDAsIDI1MDAwMCwgMzAwMDAwLCAzNTAwMDApLA0KICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gYyg1MCwgMTAwLCAxNTAsIDIwMCwgMjUwLCAzMDAsIDM1MCwwLCA1MCwgMTAwLCAxNTAsIDIwMCwgMjUwLCAzMDAsIDM1MCksDQogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKC0zNTAwMDAsMzUwMDAwKQ0KICAgICAgICAgICAgICAgICAgICApIA0KDQpnZ3NhdmUocGxvdCA9IHBpcmFtaWRlX25hYywgImdyYWZpY29zL3BpcmFtaWRlLWFyZ2VudGluYS5wbmciKQ0KDQpwbG90bHlfbmFjIDwtIGdncGxvdGx5KHBpcmFtaWRlX25hYykNCg0KcGxvdGx5X25hYw0Kcm0ocGlyYW1pZGVfbmFjKQ0KDQojR3VhcmRvIGh0bWwNCg0KYGBgDQoNCiMjIyMgUHJvdmluY2lhIGRlIGJ1ZW5vcyBhaXJlcw0KDQpgYGB7cn0NCg0KI1BpcmFtaWRlIGRlIGxhIHByb3ZpbmNpYSBkZSBidWVub3MgYWlyZXMNCnRpdHVsYXJlc19wYmEgPC0gdGl0dWxhcmVzX3BlcnNvbmFzIHw+DQogIGZpbHRlcihwcm92aW5jaWFfaWQgPT0gIjA2IikgfD4gDQogIGdyb3VwX2J5KHJhbmdvX2V0YXJpbywgc2V4bykgfD4NCiAgc3VtbWFyaXNlKE4gPSBuKCkpIHw+DQogIG11dGF0ZShOID0gaWZlbHNlKHNleG8gPT0gIk0iLC1OLCBOKSkgfD4NCiAgcmVuYW1lKA0KICAgICJSYW5nbyBldGFyaW8iID0gcmFuZ29fZXRhcmlvLA0KICAgICJzZXhvIiA9IHNleG8sDQogICAgIkNhbnRpZGFkIGRlIHRpdHVsYXJlcyIgPSBODQogICkgDQoNCiMgQXJtbyBwaXJhbWlkZSBkZSBwcm92aW5jaWEgZGUgYnVlbm9zIGFpcmVzDQpwaXJhbWlkYV9wYmEgPC0gdGl0dWxhcmVzX3BiYSB8PiANCiAgZ2dwbG90KCkgKw0KICBhZXMoeCA9IGBSYW5nbyBldGFyaW9gLCB5ID0gYENhbnRpZGFkIGRlIHRpdHVsYXJlc2AsIGZpbGwgPSBzZXhvKSArDQogIGdlb21fY29sKCkgKw0KICBzY2FsZV9maWxsX21hbnVhbCh2YWx1ZXMgPSBjKEYgPSAiI2IyMjk4NyIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTSA9ICIjMjk4N2IyIikpICsNCiBsYWJzKHggPSAiICIsIHkgPSAiICIsIHRpdGxlID0gIlBpcmFtaWRlIHBvYmxhY2lvbmFsIGRlIEJ1ZW5vcyBBaXJlcyIsDQogICAgICBzdWJ0aXRsZSA9ICJUaXR1bGFyZXMgZGVsIFBvdGVuY2lhciBUcmFiYWpvIGVudHJlIGVsIGHDsW8gMjAyMCB5IDIwMjIgKGVuIG1pbGVzKSIsDQogICAgICBjYXB0aW9uID0gIkZ1ZW50ZTogRWxhYm9yYWNpw7NuIHByb3BpYSBlbiBiYXNlIGEgZGF0b3MgYWJpZXJ0b3MgZGVsIE1pbmlzdGVyaW8gZGUgRGVzYXJyb2xsbyBTb2NpYWwgZGUgbGEgTmFjacOzbiIsIA0KIGZpbGwgPSAiU2V4byIpICArDQogIGNvb3JkX2ZsaXAoKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSsNCiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uID0gInJpZ2h0IiwNCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNkwsIGZhY2UgPSAiYm9sZCIsIGhqdXN0ID0gMC41KSwNCiAgICBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNEwsIGZhY2UgPSAiaXRhbGljIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3QuY2FwdGlvbiA9IGVsZW1lbnRfdGV4dChzaXplID0gOEwpLA0KICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfdGV4dChzaXplID0gOUwpLA0KICAgIGF4aXMudGl0bGUueCA9IGVsZW1lbnRfdGV4dChzaXplID0gOUwpLA0KICAgIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9OEwpDQogICkgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMoYnJlYWtzID0gYyggLTUwMDAwLCAtMTAwMDAwLCAtMTUwMDAwLCAtMjAwMDAwLCAwLCA1MDAwMCwgMTAwMDAwLCAxNTAwMDAsIDIwMDAwMCksDQogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKDUwLCAxMDAsIDE1MCwgMjAwLCAwLCA1MCwgMTAwLCAxNTAsIDIwMCksDQogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKC0yMDAwMDAsMjAwMDAwKQ0KICAgICAgICAgICAgICAgICAgICApIA0KZ2dzYXZlKHBsb3Q9IHBpcmFtaWRhX3BiYSwgImdyYWZpY29zL3BpcmFtaWRlLWJhaXJlcy5wbmciKQ0KDQojIE11ZXN0cm8NCmdncGxvdGx5KHBpcmFtaWRhX3BiYSkNCg0Kcm0ocGlyYW1pZGFfcGJhKQ0KDQpgYGANCg0KIyMjIFRpdHVsYXJlcyBwb3IgcHJvdmluY2lhDQoNCmBgYHtyfQ0KI01vZGlmaWNvIGVycm9yZXMgZGUgbm9tYnJlcw0KdGl0dWxhcmVzX3BlcnNvbmFzIDwtIHRpdHVsYXJlc19wZXJzb25hcyB8Pg0KICBtdXRhdGUocHJvdmluY2lhID0gaWZlbHNlKHByb3ZpbmNpYSA9PSAiQ8ODwrNyZG9iYSIsICJDw7NyZG9iYSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHByb3ZpbmNpYSA9PSAiRW50cmUgUsODwq1vcyIsIkVudHJlIFLDrW9zIiwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHByb3ZpbmNpYSA9PSAiVHVjdW3Dg8KhbiIsICJUdWN1bcOhbiIsIHByb3ZpbmNpYSkpKSkgDQoNCiMgQ3JlbyB0YWJsYQ0KdGl0dWxhcmVzX3BlcnNvbmFzIHw+IA0KICB0YWJ5bChwcm92aW5jaWEpIHw+IA0KICBhcnJhbmdlKGRlc2MobikpICU+JQ0KICBhZG9ybl90b3RhbHMgfD4gDQogIG11dGF0ZShwZXJjZW50ID0gcHJpbnQocGFzdGUocm91bmQocGVyY2VudCoxMDAsMiksICIlIikpKSB8PiANCiAgcmVuYW1lKA0KICAgICJDYW50aWRhZCIgPSBuLA0KICAgICJQb3JjZW50YWplIiA9IHBlcmNlbnQsDQogICAgIlByb3ZpbmNpYSIgPSBwcm92aW5jaWENCiAgKSB8PiANCiAgZ3QoKSAlPiUNCiAgdGFiX2hlYWRlcigNCiAgICB0aXRsZSA9ICJEaXN0cmlidWNpw7NuIHBvciBQcm92aW5jaWEiLA0KICAgIHN1YnRpdGxlID0gIkNhbnRpZGFkIHkgUG9yY2VudGFqZSBkZSB0aXR1bGFyZXMgIg0KICApICU+JQ0KICBmbXRfbnVtYmVyKA0KICAgIGNvbHVtbnMgPSBjKENhbnRpZGFkKSwNCiAgICBkZWNpbWFscyA9IDApIHw+IA0KICBmbXRfbnVtYmVyKA0KICAgIGNvbHVtbnMgPSBjKFBvcmNlbnRhamUpLA0KICAgIGRlY2ltYWxzID0gMikNCg0KDQpgYGANCg0KPCEtLSBTZSBwb2Ryw61hIGhhY2VyIGNvbiBsYXMgcHJveWVjY2lvbmVzIGRlbCBpbmRlYyBlbCAlIGRlIHBvYmxhY2nDs24gcXVlIGxvIHJlY2liZSBwYXJhIHZlciBwb3JjZW50dWFsbWVudGUgY3VhbnRvIHJlcHJlc2VudGEgLS0+DQoNCg0KIyMgRXZvbHVjacOzbiBkZSBsb3MgdGl0dWxhcmVzIC8gcGVybWFuZW5jaWEgZW4gZWwgcHJvZ3JhbWENCg0KVGl0dWxhcmVzIHBvciBwZXJpb2RvIHkganVyaXNkaWNjacOzbiBncsOhZmljbyBsaW5lYWwNCg0KYGBge3J9DQojdGl0dWxhcmVzIHBvciBwZXJpb2RvIHkganVyaXNkaWNjaW9uIChtdW5pY2lwaW8pDQp0b3RhbF90aXR1bGFyZXMgPC0gcmVhZF9jc3YoImh0dHBzOi8vZGF0b3NhYmllcnRvcy5kZXNhcnJvbGxvc29jaWFsLmdvYi5hci9kYXRhc2V0L2Q0NTY4N2MwLWYyYmEtNDFkOS05OTg5LTBhZDk3OTkzMDhhZS9yZXNvdXJjZS9jNGNhYTcyNC1kZmJiLTRhYWMtYmZlNy0yMTY5ZjQxNTRiYzUvZG93bmxvYWQvcG90ZW5jaWFyLXRyYWJham8tdGl0dWxhcmVzLWFjdGl2b3MtMjAyMi0xMC0wMS5jc3YiKQ0KIyBUaXR1bGFyZXMgcG9yIHBlcmlvZG8geSBqdXJpc2RpY2Npw7NuIGdyw6FmaWNvIGxpbmVhbA0KDQp0aXRfYXJnZW50aW5hIDwtIHRvdGFsX3RpdHVsYXJlcyB8PiANCiAgZ3JvdXBfYnkocGVyaW9kbykgfD4gDQogIHN1bW1hcmlzZSh0b3RhbF90aXR1bGFyZXMgPSBzdW0odGl0dWxhcmVzKSwNCiAgICAgICAgICAgIGp1cmlzZGljY2lvbiA9ICJBcmdlbnRpbmEiKSANCg0KZGZfdGVuZGVuY2lhIDwtIHRvdGFsX3RpdHVsYXJlcyB8PiANCiAgZmlsdGVyKHByb3ZpbmNpYV9pZCA9PSAiMDYiKSB8PiANCiAgZ3JvdXBfYnkocGVyaW9kbykgfD4gDQogIHN1bW1hcmlzZSh0b3RhbF90aXR1bGFyZXMgPSBzdW0odGl0dWxhcmVzKSwNCiAgICAgICAgICAgIGp1cmlzZGljY2lvbiA9ICJCdWVub3MgQWlyZXMiKSB8PiANCiAgZnVsbF9qb2luKHRpdF9hcmdlbnRpbmEpDQoNCg0KbGluZWEgPC0gZ2dwbG90KGRmX3RlbmRlbmNpYSkgKw0KICBhZXMoeCA9IHBlcmlvZG8sIHkgPSB0b3RhbF90aXR1bGFyZXMsIGNvbG91ciA9IGp1cmlzZGljY2lvbikgKw0KICBnZW9tX2xpbmUoKSArDQogIGdlb21fcG9pbnQoKSArDQogIHNjYWxlX2NvbG9yX2JyZXdlcihwYWxldHRlID0gIlNldDIiLA0KICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uID0gMSkgKw0KICBsYWJzKA0KICAgIHggPSAiICIsDQogICAgeSA9ICIgIiwNCiAgICB0aXRsZSA9ICJFdm9sdWNpw7NuIGRlIGxhIGNhbnRpZGFkIGRlIHRpdHVsYXJlcyAiLA0KICAgIHN1YnRpdGxlID0gIkRlbCB0b3RhbCBkZWwgcGHDrXMgeSBkZSBsYSBQcm92aW5jaWEgZGUgQnVlbm9zIEFpcmVzICgyMDIwLTIwMjIpIiwNCiAgICBjYXB0aW9uID0gIkZ1ZW50ZTogRWxhYm9yYWNpw7NuIHByb3BpYSBlbiBiYXNlIGEgZGF0b3MgYWJpZXJ0b3MgZGVsIE1EU04iLA0KICAgIGNvbG9yID0gIkp1cmlzZGljY2nDs24iDQogICkgKw0KICBnZ3RoZW1lczo6dGhlbWVfcGFuZGVyKCkgKw0KICB0aGVtZSgNCiAgICBsZWdlbmQucG9zaXRpb24gPSAidG9wIiwNCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNUwsIGZhY2UgPSAiYm9sZCIsDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoanVzdCA9IDAuNSksDQogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTRMLCBmYWNlID0gIml0YWxpYyIsIGhqdXN0ID0gMC41KQ0KICApICsNCiAgc2NhbGVfeF9kYXRlKGRhdGVfbGFiZWxzID0gIiViLSV5IiwgZGF0ZV9icmVha3MgPSAiMyBtb250aHMiKSArDQogIHNjYWxlX3lfY29udGludW91cyhsYWJlbHMgPSBjb21tYSkNCg0KZ2dzYXZlKHBsb3QgPSBsaW5lYSwgImdyYWZpY29zL2xpbmVhLnBuZyIpDQoNCmdncGxvdGx5KGxpbmVhKQ0KYGBgDQoNCg0KIyMgRGlzdHJpYnVjacOzbiBnZW9ncsOhZmljYSANCg0KDQoNCmBgYHtyfQ0Kcm0oYmFzZV9zZXhvLCBkZl90ZW5kZW5jaWEsIHRpdHVsYXJlc19wYmEpDQoNCiMgdWx0aW1vIGNvYnJvIGRlbCB0aXR1bGFyIChzZSBwb2RyaWEgbWFwZWFyKQ0KdGl0dWxhcmVzX2FubyA8LSByZWFkX2NzdigiaHR0cHM6Ly9kYXRvc2FiaWVydG9zLmRlc2Fycm9sbG9zb2NpYWwuZ29iLmFyL2RhdGFzZXQvZDQ1Njg3YzAtZjJiYS00MWQ5LTk5ODktMGFkOTc5OTMwOGFlL3Jlc291cmNlL2M1YzkyNWUwLTdjZTAtNDFlNS1iM2ZmLThlYmI1MWQ0YmU3Mi9kb3dubG9hZC9wb3RlbmNpYXItdHJhYmFqby10aXR1bGFyZXMtMjAyMi0xMC0wMS5jc3YiKQ0KDQoNCiMgQXJtbyBlbCBncmFmaWNvIGRlIHRpdHVsYXJlcyB0b3RhbGVzDQogDQptYXBhX3Byb3ZpbmNpYSA8LSB0aXR1bGFyZXNfYW5vIHw+DQogIG11dGF0ZShhbm8gPSB5ZWFyKHBlcmlvZG8pKSB8PiANCiAgZ3JvdXBfYnkocHJvdmluY2lhX2lkLCBhbm8pIHw+IA0KICBzdW1tYXJpc2UodG90X3RpdHVsYXJlcz0gc3VtKHRpdHVsYXJlcykpDQoNCiNhZ3J1cG8gcG9yIGHDsW8NCm1hcGFfcHJvdmluY2lhIDwtIG1hcGFfcHJvdmluY2lhIHw+DQogIGdyb3VwX2J5KGFubykgfD4gDQogIG11dGF0ZSh0b3RfcHJvcCA9ICh0b3RfdGl0dWxhcmVzL3N1bSh0b3RfdGl0dWxhcmVzKSkqMTAwKQ0KDQojIEFybW8gdW5hIHRhYmxhIA0KDQojIFZlY3RvcmVzIGNvbiBub21icmVzIGRlIHByb3ZpbmNpYXMgeSBjw7NkaWdvcw0Kbm9tYnJlc19wcm92aW5jaWFzIDwtIGMoDQogICJDaXVkYWQgQXV0w7Nub21hIGRlIEJ1ZW5vcyBBaXJlcyIsDQogICJCdWVub3MgQWlyZXMiLA0KICAiQ2F0YW1hcmNhIiwNCiAgIkPDs3Jkb2JhIiwNCiAgIkNvcnJpZW50ZXMiLA0KICAiQ2hhY28iLA0KICAiQ2h1YnV0IiwNCiAgIkVudHJlIFLDrW9zIiwNCiAgIkZvcm1vc2EiLA0KICAiSnVqdXkiLA0KICAiTGEgUGFtcGEiLA0KICAiTGEgUmlvamEiLA0KICAiTWVuZG96YSIsDQogICJNaXNpb25lcyIsDQogICJOZXVxdcOpbiIsDQogICJSw61vIE5lZ3JvIiwNCiAgIlNhbHRhIiwNCiAgIlNhbiBKdWFuIiwNCiAgIlNhbiBMdWlzIiwNCiAgIlNhbnRhIENydXoiLA0KICAiU2FudGEgRmUiLA0KICAiU2FudGlhZ28gZGVsIEVzdGVybyIsDQogICJUdWN1bcOhbiIsDQogICJUaWVycmEgZGVsIEZ1ZWdvLCBBbnTDoXJ0aWRhIGUgSXNsYXMgZGVsIEF0bMOhbnRpY28gU3VyIg0KKQ0KDQpwcm92aW5jaWFfaWQgPC0gYygNCiAgIjAyIiwgIjA2IiwgIjEwIiwgIjE0IiwgIjE4IiwgIjIyIiwgIjI2IiwgIjMwIiwgIjM0IiwgIjM4IiwgIjQyIiwgIjQ2IiwNCiAgIjUwIiwgIjU0IiwgIjU4IiwgIjYyIiwgIjY2IiwgIjcwIiwgIjc0IiwgIjc4IiwgIjgyIiwgIjg2IiwgIjkwIiwgIjk0Ig0KKQ0KDQojVW5vDQp0YWJsYV9jb2QgPC0gZGF0YS5mcmFtZShwcm92aW5jaWFfaWQsbm9tYnJlc19wcm92aW5jaWFzKQ0KDQptYXBhX3Byb3ZpbmNpYSA8LSBtYXBhX3Byb3ZpbmNpYSB8PiANCiAgbGVmdF9qb2luKHRhYmxhX2NvZCkNCg0KdGFibGEgPC0gbWFwYV9wcm92aW5jaWEgfD4gDQogIHNlbGVjdCgtcHJvdmluY2lhX2lkKSB8PiANCiAgcGl2b3Rfd2lkZXIobmFtZXNfZnJvbSA9IGFubywgdmFsdWVzX2Zyb20gPSBjKHRvdF90aXR1bGFyZXMsIHRvdF9wcm9wKSkgfD4gDQogIHJlbmFtZSgiUHJvdmluY2lhcyI9IG5vbWJyZXNfcHJvdmluY2lhcywNCiAgICAgICAgICJQb3JjZW50YWplIDIwMjAiID0gdG90X3Byb3BfMjAyMCwNCiAgICAgICAgICJQb3JjZW50YWplIDIwMjEiID0gdG90X3Byb3BfMjAyMSwNCiAgICAgICAgICJQb3JjZW50YWplIDIwMjIiID0gdG90X3Byb3BfMjAyMiwNCiAgICAgICAgICJUaXR1bGFyZXMgMjAyMCIgPSB0b3RfdGl0dWxhcmVzXzIwMjAsDQogICAgICAgICAiVGl0dWxhcmVzIDIwMjEiID0gdG90X3RpdHVsYXJlc18yMDIxLA0KICAgICAgICAgIlRpdHVsYXJlcyAyMDIyIiA9IHRvdF90aXR1bGFyZXNfMjAyMiwpIHw+IA0KICBhZG9ybl90b3RhbHMoKSANCg0KdGFibGEgfD4NCiAgbXV0YXRlKGBQb3JjZW50YWplIDIwMjBgID0gcGFzdGUwKHJvdW5kKGBQb3JjZW50YWplIDIwMjBgLDIpLCIlIiksDQogICAgICAgICBgUG9yY2VudGFqZSAyMDIxYCA9IHBhc3RlMChyb3VuZChgUG9yY2VudGFqZSAyMDIxYCwyKSwiJSIpLA0KICAgICAgICAgYFBvcmNlbnRhamUgMjAyMmAgPSBwYXN0ZTAocm91bmQoYFBvcmNlbnRhamUgMjAyMmAsMiksIiUiKSkgJT4lDQogICNFbGltaW5vIGxhcyBjYW50aWRhZGVzIHBvcnF1ZSBubyB0aWVuZSBzZW50aWRvDQogICNzZWxlY3QoLWBUaXR1bGFyZXMgMjAyMGAsLWBUaXR1bGFyZXMgMjAyMWAsLWBUaXR1bGFyZXMgMjAyMmApICU+JSANCiAgZ3QoKSU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIlBvcmNlbnRhamUgZGUgdGl0dWxhcmVzIHBvciBwcm92aW5jaWEgeSBhw7FvIiwNCiAgICBzdWJ0aXRsZSA9ICJTb2JyZSBlbCB0b3RhbCBkZSB0aXR1bGFyZXMiDQogICkgDQoNCg0KI1RhYmxhIHBhcmEgcG9uZXIgZW4gZWwgdHJhYmFqbyANCg0Kd3JpdGV4bDo6d3JpdGVfeGxzeCh0YWJsYSwgImJhc2VzLXBhcmEtY3luL3RpdHVsYXJlc3hwcm92aW5jaWF5YW5vLnhsc3giKQ0KDQoNCg0KDQpgYGANCg0KIyMjIE1hcGEgZW4gZnVuY2nDs24gZGVsICUgcG9ibGFjaW9uYWwgey50YWJzZXR9DQoNCiMjIyMgQXJnZW50aW5hDQpgYGB7cn0NCiMgVHJhaWdvIGVsIG1hcGEgZGUgYXJnZW50aW5hIGNvbiBwcm92aW5jaWFzDQptYXBhX2FyZyA8LSBnZXRfZ2VvKCJBUkdFTlRJTkEiLCBsZXZlbCA9ICJwcm92aW5jaWEiKSB8PiANCiAgcmVuYW1lKCJwcm92aW5jaWFfaWQiID0gY29kcHJvdl9jZW5zbykNCg0KY29kaWdvc19tYXBhIDwtIHNob3dfYXJnX2NvZGVzKHZpZXdlciA9IEZBTFNFLCBuaXZlbCA9ICJwcm92aW5jaWFzIikNCmBgYA0KDQoNCg0KYGBge3J9DQojIFRyYWlnbyBjc3YgcXVlIGFybWFtb3MgZW4gbGEgY2xhc2UgZGUgc2FsdWQgY29uIFINCnBvYmxhY2lvbl9pbmRlYyA8LSByZWFkX2NzdigiZGF0YS9yZXN1bHRhZG8uY3N2IikNCg0KIyBNZSB0cmFpZ28gbG9zIHRvdGFsZXMgcG9ibGFjaW9uYWxlcw0KcG9ibGFjaW9uIDwtIHBvYmxhY2lvbl9pbmRlYyB8PiANCiAgZmlsdGVyKCFqdXJpID09ICIwMSIpIHw+IA0KICAjIEHDsW8gMjAyMiB5IDIwMjAgcGFyYSB2ZXIgbGFzIGRvcyBmb3Rvcw0KICBmaWx0ZXIoYW5vID09IDIwMjIgfCBhbm8gPT0gMjAyMCkgfD4gDQogICMgVG90YWwgcG9yIHNlbw0KICBmaWx0ZXIoc2V4b19ub21icmUgPT0gIkFtYm9zIHNleG9zIikgfD4NCiAgZ3JvdXBfYnkoYW5vLGp1cmksIGp1cmlfbm9tYnJlKSB8PiANCiAgc3VtbWFyaXNlKHBvYmxhY2lvbiA9IHN1bShwb2JsYWNpb24pKSB8PiANCiAgI1BhcmEgcG9kZXIgam9pbmVhcg0KICByZW5hbWUoInByb3ZpbmNpYV9pZCIgPSBqdXJpKQ0KDQoNCg0KIyBBcm1hbW9zIGxhIHByb3BvcmNpw7NuIGRlIHRpdHVsYXJlcyBzb2JyZSBsYSBwb2JsYWNpw7NuIHByb3llY3RhZGENCm1hcGFfcHJvdmluY2lhX3BvYiA8LSBtYXBhX3Byb3ZpbmNpYSB8Pg0KICBmaWx0ZXIoYW5vICVpbiUgYygyMDIwLCAyMDIyKSkgfD4gDQogIGxlZnRfam9pbihwb2JsYWNpb24pIHw+IA0KICBncm91cF9ieShhbm8sIHByb3ZpbmNpYV9pZCkgfD4gDQogIG11dGF0ZShwcm9wX3BvbmxhY2lvbmFsID0gKHRvdF90aXR1bGFyZXMvcG9ibGFjaW9uKSkNCg0KDQptYXBhX3Byb3ZpbmNpYV9wb2IkcHJvcF9wb25sYWNpb25hbCA8LSByb3VuZChtYXBhX3Byb3ZpbmNpYV9wb2IkcHJvcF9wb25sYWNpb25hbCoxMDAsMikNCg0KI2d1YXJkbyBleGNlbCkqDQp3cml0ZXhsOjp3cml0ZV94bHN4KG1hcGFfcHJvdmluY2lhX3BvYiwgImJhc2VzLXBhcmEtY3luL3RvdF90aXR1bGFyZXNfcHJvdmluY2lhX2luZGVjLnhsc3giKQ0KDQojVW5vIGNvbiBlbCBtYXBhIA0KbWFwYV9wb2IgPC0gbWFwYV9hcmcgfD4gDQogIGxlZnRfam9pbihtYXBhX3Byb3ZpbmNpYV9wb2IpDQoNCm1hcGFfbmFjIDwtIGdncGxvdChtYXBhX3BvYikgKw0KICBnZW9tX3NmKGFlcyhmaWxsID0gcHJvcF9wb25sYWNpb25hbCkpICsNCiAgZ2VvbV9zZl90ZXh0KA0KICAgIGFlcyhsYWJlbCA9IHBhc3RlMChwcm9wX3BvbmxhY2lvbmFsLCAiJSIpKSwNCiAgICBzaXplID0gMS44LA0KICAgIGZhY2UgPSAiYm9sZCIsDQogICAgY29sb3VyID0gImJsYWNrIiwNCiAgICBoanVzdCA9IDAuNQ0KICApICsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Mob3B0aW9uID0gInBsYXNtYSIsDQogICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBwZXJjZW50X2Zvcm1hdChzY2FsZSA9IDEpKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSArDQogIGxhYnModGl0bGUgPSAiUG9yY2VudGFqZSBkZSB0aXR1bGFyZXMgcG9yIHByb3ZpbmNpYSIsDQogICAgICAgc3VidGl0bGUgPSAiRW4gYmFzZSBhIHByb3llY2Npb25lcyBkZSBJTkRFQyIsDQogICAgICAgZmlsbCA9ICJQb3JjZW50YWplIikgKw0KICB0aGVtZSgNCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNkwsIGZhY2UgPSAiYm9sZCIsIGhqdXN0ID0gMC41KSwNCiAgICBwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNEwsIGZhY2UgPSAiaXRhbGljIiwgaGp1c3QgPSAwLjUpLA0KICAgIHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEpDQogICkgKw0KICB5bGFiKCIiKSArDQogIHhsYWIoIiIpICsNCiAgZmFjZXRfd3JhcCh2YXJzKGFubykpICAgIyBBw7FhZGUgc2NhbGVzID0gImZyZWUiIHBhcmEgYWp1c3RhciBsYXMgZXNjYWxhcyBkZSBsb3MgZWplcyBlbiBjYWRhIHBhbmVsDQoNCg0KZ2dzYXZlKHBsb3QgPSBtYXBhX25hYywgImdyYWZpY29zL21hcGEtcG9yYy10aXR1bGFyZXMteC1wb2JsYWNpb24ucG5nIikNCg0KcGFyYV90YWJsYSA8LSBtYXBhX3BvYiAlPiUgDQogIGdyb3VwX2J5KGFubykgfD4gDQogIHN1bW1hcmlzZShUaXR1bGFyZXMgPXN1bSh0b3RfdGl0dWxhcmVzKSwNCiAgICAgICAgICAgIFBvYmxhY2lvbiA9c3VtKHBvYmxhY2lvbiksDQogICAgICAgICAgICBQb3JjZW50YWplID0gcGFzdGUwKHJvdW5kKChUaXR1bGFyZXMvUG9ibGFjaW9uKSoxMDAsMSksIiUiKSkgJT4lIA0KICByZW5hbWUoIkHDsW8iID0gYW5vKQ0KDQpwYXJhX3RhYmxhIDwtIGFzLmRhdGEuZnJhbWUocGFyYV90YWJsYSkgJT4lIA0KICBzZWxlY3QoLWdlb21ldHJ5KQ0KDQpwYXJhX3RhYmxhICU+JSANCiAgZ3QoKSAlPiUNCiAgdGFiX2hlYWRlcigNCiAgICB0aXRsZSA9ICJQb3JjZW50YWplIGRlIHRpdHVsYXJlcyBwb3IgYcOxbyIsDQogICAgc3VidGl0bGUgPSAiRW4gYmFzZSBhIHByb3llY2Npb25lcyBwb2JsYWNpb25hbGVzIGRlIElOREVDIg0KICApIA0KDQptYXBhX25hY19pbnRlcmFjdGl2byA8LSBnZ3Bsb3QobWFwYV9wb2IpICsNCiAgZ2VvbV9zZihhZXMoZmlsbCA9IHByb3BfcG9ubGFjaW9uYWwsIHRleHQgPSBwYXN0ZSgiUHJvdmluY2lhOiIsIGp1cmlfbm9tYnJlLCAiPGJyPlBvcmNlbnRhamU6IiwgcHJvcF9wb25sYWNpb25hbCwgIiUiKSkpICsNCiAgc2NhbGVfZmlsbF92aXJpZGlzX2Mob3B0aW9uID0gInBsYXNtYSIsDQogICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IC0xLA0KICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBwZXJjZW50X2Zvcm1hdChzY2FsZSA9IDEpKSArDQogIGdndGhlbWVzOjp0aGVtZV9wYW5kZXIoKSArDQogIGxhYnModGl0bGUgPSAiUG9yY2VudGFqZSBkZSB0aXR1bGFyZXMgcG9yIHByb3ZpbmNpYSBlbiBiYXNlIGEgcHJveWVjY2lvbmVzIGRlIElOREVDIiwNCiAgICAgICBmaWxsID0gIlBvcmNlbnRhamUiKSArDQogIHRoZW1lKA0KICAgIHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE2TCwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSksDQogICAgdGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMSkNCiAgKSArDQogIHlsYWIoIiIpICsNCiAgeGxhYigiIikgKw0KICBmYWNldF93cmFwKHZhcnMoYW5vKSkNCg0KZ2dwbG90bHkobWFwYV9uYWNfaW50ZXJhY3Rpdm8sIHRvb2x0aXAgPSAidGV4dCIpDQpgYGANCg0KDQojIyMjIEJ1ZW5vcyBBaXJlcw0KDQpgYGB7cn0NCiNwYXJhIHZlciBjdWFsIGVzIGVsIGNvZGlnbw0KI2NvZGlnb3NfbWFwYSA8LSBzaG93X2FyZ19jb2Rlcyh2aWV3ZXIgPSBGQUxTRSwgbml2ZWwgPSAicHJvdmluY2lhcyIpDQojIFRyYWlnbyBlbCBtYXBhIGRlIGFyZ2VudGluYSBjb24gcHJvdmluY2lhcw0KbWFwYV9iYSA8LSBnZXRfZ2VvKCJCVUVOT1MgQUlSRVMiLCBsZXZlbCA9ICJkZXBhcnRhbWVudG8iKSANCg0KI1RyYWlnbyBsYSBwcm95ZWNjaW9uIHBvYmxhY2lvbmFsIGRlIElOREVDIHF1ZSBoaWNlIHBhcmEgbGEgbWF0ZXJpYSBkZSBzYWx1ZCBkZSBSIGRlIE1HQUlFDQoNCmJhX2RlcHRvX2luZGVjIDwtIHJlYWRfZXhjZWwoImRhdGEvcHJveWVjY2lvbmVzX2RlcHRvX2luZGVjLnhsc3giKSB8PiANCiAgY2xlYW5fbmFtZXMoKSB8PiANCiAgIyBmaWx0cm8gcG9yIHByb3ZpbmNpYSBkZSBidWVub3MgYWlyZXMNCiAgZmlsdGVyKGp1cmlfY29kaWdvID09ICIwNiIpIHw+IA0KICAjIG1lIHF1ZWRvIGNvbiBsYSBpbmZvIGRlIGFtYm9zIHNleG9zDQogIGZpbHRlcihzZXhvX25vbWJyZSA9PSAiQW1ib3Mgc2V4b3MiKSB8PiANCiAgI0ZpbHRybyBsb3MgYcOxb3MNCiAgZmlsdGVyKGFubyAlaW4lIGMoMjAyMCwgMjAyMSwgMjAyMikpIHw+IA0KICByZW5hbWUoInByb3ZpbmNpYV9pZCIgPSBqdXJpX2NvZGlnbykNCg0KIyBUaXR1bGFyZXMgDQp0aXR1bGFyZXNfYmEgPC0gdGl0dWxhcmVzX2FubyB8PiANCiAgIyBGaWx0cm8gbG9zIGRlIGJ1ZW5vcyBhaXJlcw0KICBmaWx0ZXIocHJvdmluY2lhX2lkID09ICIwNiIpIHw+IA0KICAjIENyZW8gdW5hIGNvbHVtbmEgY29uIGVsIGNvZGlnbyBzaW4gZWwgMDYgZGUgbGEgcHJvdmluY2lhIHBhcmEgcG9kZXIgbWF0Y2hlYXIgY29uIGVsIGNlbnNvDQogIG11dGF0ZShkZXBhcnRhbWVudG9fY29kaWdvID0gc3Vic3RyKGRlcGFydGFtZW50b19pZCwgMywgbmNoYXIoZGVwYXJ0YW1lbnRvX2lkKSksDQogICAgICAgICBhbm8gPSBhcy5jaGFyYWN0ZXIoeWVhcihwZXJpb2RvKSkpIA0KDQojIFVubyBhbWJhcyBiYXNlcyBwYXJhIHBvZGVyIG9wZXJhcg0KbWFwYV9wYmEgPC0gYmFfZGVwdG9faW5kZWMgfD4gDQogIGxlZnRfam9pbih0aXR1bGFyZXNfYmEgfD4gDQogICAgICAgICAgICAgIHNlbGVjdCgtYyhtdW5pY2lwaW8sIG11bmljaXBpb19pZCwgDQogICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRhbWVudG9faWQsDQogICAgICAgICAgICAgICAgICAgICAgICBwcm92aW5jaWEsDQogICAgICAgICAgICAgICAgICAgICAgICBkZXBhcnRhbWVudG8pKSkgfD4gDQogIG11dGF0ZShwb3JjZW50YWplID0gKHRpdHVsYXJlcy9wb2JsYWNpb24pKjEwMCkgDQoNCmJhc2VfZmluYWxfcGJhIDwtIG1hcGFfYmEgfD4gDQogIGxlZnRfam9pbihtYXBhX3BiYSB8PiANCiAgc2VsZWN0KGRlcGFydGFtZW50b19ub21icmUsZGVwYXJ0YW1lbnRvX2NvZGlnbywgYW5vLCBwb3JjZW50YWplKSB8PiANCiAgICByZW5hbWUoImNvZGRlcHRvX2NlbnNvIiA9IGRlcGFydGFtZW50b19jb2RpZ28pIHw+IA0KICAgIGZpbHRlcighIGFubyA9PSAiMjAyMSIpKQ0KDQoNCnRhYmxhX3BiYSA8LSBtYXBhX3BiYSB8PiANCiAgc2VsZWN0KGRlcGFydGFtZW50b19ub21icmUsIGFubywgcG9ibGFjaW9uLCB0aXR1bGFyZXMsIHBvcmNlbnRhamUpIHw+IA0KICBwaXZvdF93aWRlcihuYW1lc19mcm9tID0gYW5vLCB2YWx1ZXNfZnJvbSA9IGMocG9ibGFjaW9uLCB0aXR1bGFyZXMsIHBvcmNlbnRhamUpKSANCg0KI0RUOjpkYXRhdGFibGUodGFibGFfcGJhKQ0KDQp3cml0ZXhsOjp3cml0ZV94bHN4KHRhYmxhX3BiYSwgImJhc2VzLXBhcmEtY3luL3RhYmxhX3BiYS54bHN4IikNCmBgYA0KDQoNCmBgYHtyfQ0KDQptYXBhX2J1ZW5vc19haXJlcyA8LSBiYXNlX2ZpbmFsX3BiYSB8PiANCiAgZ2dwbG90KCkgKw0KICBnZW9tX3NmKGFlcyhmaWxsID0gcG9yY2VudGFqZSwgdGV4dCA9IHBhc3RlKCJEZXBhcnRhbWVudG86IiwgZGVwYXJ0YW1lbnRvX25vbWJyZSwgIjxicj5Qb3JjZW50YWplOiIsIHJvdW5kKHBvcmNlbnRhamUsMSksICIlIikpKSArDQogIHNjYWxlX2ZpbGxfdmlyaWRpc19jKG9wdGlvbiA9ICJwbGFzbWEiLA0KICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rpb24gPSAtMSwNCiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gcGVyY2VudF9mb3JtYXQoc2NhbGUgPSAxKSkgKw0KICBnZ3RoZW1lczo6dGhlbWVfcGFuZGVyKCkgKw0KICBsYWJzKHRpdGxlID0gIlBvcmNlbnRhamUgZGUgdGl0dWxhcmVzIHBvciBkZXBhcnRhbWVudG8iLA0KICAgICAgIHN1YnRpdGxlID0gIkVuIGJhc2UgYSBwcm95ZWNjaW9uZXMgZGUgSU5ERUMiLA0KICAgICAgIGZpbGwgPSAiUG9yY2VudGFqZSIpICsNCiAgdGhlbWUoDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTZMLCBmYWNlID0gImJvbGQiLCBoanVzdCA9IDAuNSksDQogICAgcGxvdC5zdWJ0aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTRMLCBmYWNlID0gIml0YWxpYyIsIGhqdXN0ID0gMC41KSwNCiAgICB0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSAxKQ0KICApICsNCiAgeWxhYigiIikgKw0KICB4bGFiKCIiKSArDQogIGZhY2V0X3dyYXAodmFycyhhbm8pKSAgICMgQcOxYWRlIHNjYWxlcyA9ICJmcmVlIiBwYXJhIGFqdXN0YXIgbGFzIGVzY2FsYXMgZGUgbG9zIGVqZXMgZW4gY2FkYSBwYW5lbA0KDQojbWFwYV9idWVub3NfYWlyZXMNCg0KZ2dzYXZlKHBsb3QgPSBtYXBhX2J1ZW5vc19haXJlcywgImdyYWZpY29zL21hcGFfYnVlbm9zX2FpcmVzLnBuZyIpDQoNCiMgTG9zIGRhdG9zIHRvdGFsZXMgZGUgbGEgcHJvdmluY2lhDQoNCm1hcGFfcGJhICAlPiUNCiAgZmlsdGVyKCFhbm8gID09ICAyMDIxKSAlPiUgDQogIGdyb3VwX2J5KGFubykgfD4gDQogIHN1bW1hcmlzZShUaXR1bGFyZXMgPXN1bSh0aXR1bGFyZXMpLA0KICAgICAgICAgICAgUG9ibGFjaW9uID1zdW0ocG9ibGFjaW9uKSwNCiAgICAgICAgICAgIFBvcmNlbnRhamUgPSBwYXN0ZTAocm91bmQoKFRpdHVsYXJlcy9Qb2JsYWNpb24pKjEwMCwxKSwiJSIpKSAlPiUgDQogIHJlbmFtZSgiQcOxbyIgPSBhbm8pICU+JSANCiAgZ3QoKSAlPiUNCiAgdGFiX2hlYWRlcigNCiAgICB0aXRsZSA9ICJQb3JjZW50YWplIGRlIHRpdHVsYXJlcyBwb3IgYcOxbyBlbiBCdWVub3MgQWlyZXMiLA0KICAgIHN1YnRpdGxlID0gIkVuIGJhc2UgYSBwcm95ZWNjaW9uZXMgcG9ibGFjaW9uYWxlcyBkZSBJTkRFQyINCiAgKSANCg0KZ2dwbG90bHkobWFwYV9idWVub3NfYWlyZXMsIHRvb2x0aXAgPSAidGV4dCIpDQpgYGANCg0KIyMgTW9udG9zIA0KDQpgYGB7cn0NCiMgRmlsdHJvIGVsIG1vbnRvIHBvciBwb3RlbmNpYXIgdHJhYmFqbw0KbW9udG9zX3ZpZ2VudGVzIDwtIHJlYWRfY3N2KCJodHRwczovL2RhdG9zYWJpZXJ0b3MuZGVzYXJyb2xsb3NvY2lhbC5nb2IuYXIvZGF0YXNldC8yZmJmYjNlMi1jZDBhLTRkMWItYWMzYi04OTMyNmU4ZTRmOWMvcmVzb3VyY2UvNjc3ODM5NmUtNzVmNy00ZmNlLWFjNjUtOTdkMWU1ZTQ1MjVlL2Rvd25sb2FkL21vbnRvcy10cmFuc2ZlcmVuY2lhcy0yMDIzLTAxLTAxLmNzdiIpIHw+IA0KICBmaWx0ZXIocHJvZ3JhbWEgPT0gIlBvdGVuY2lhciBUcmFiYWpvIikgfD4gDQogIG11dGF0ZShwZXJpb2RvID0gZm9ybWF0LkRhdGUocGVyaW9kbywgIiVtLyVZIikpDQoNCg0KIyBUcmFpZ28gZWwgSVBDIGRlIElOREVDIHBhcmEgcGFzYXIgbHMgbW9udG9zIGEgcHJlY2lvcyByZWFsZXMNCg0KaXBjIDwtIHJlYWRfZXhjZWwoImRhdGEvc2hfaXBjXzA5XzIzLnhscyIsIA0KICAgIHNoZWV0ID0gImFuYWxpc2lzX3BvdGVuY2lhciIpIHw+DQogIGNsZWFuX25hbWVzKCkgfD4gDQogIG11dGF0ZShwZXJpb2RvID0gZm9ybWF0LkRhdGUoZmVjaGEsICIlbS8lWSIpKSB8PiANCiAgc2VsZWN0KC1mZWNoYSkgfD4gDQogIHJlbmFtZSgiaXBjIiA9IG5pdmVsX2dlbmVyYWwpIHw+IA0KICByaWdodF9qb2luKG1vbnRvc192aWdlbnRlcykgfD4NCiAgbXV0YXRlKGlwYz0gaXBjLzEwMCwNCiAgICAgICAgIG1vbnRvX3JlYWwgPSBtb250by9pcGMsDQogICAgICAgICBwZXJpb2RvID0gYXMuRGF0ZShwYXN0ZSgiMDEvIiwgcGVyaW9kbywgc2VwID0gIiIpLCBmb3JtYXQgPSAiJWQvJW0vJVkiKSkNCg0KDQoNCmBgYA0KDQpgYGB7cn0NCg0KIyBBcm1vIGdyYWZpY28gZGVsIElQQw0KDQpsaW5lYV9pcGMgPC0gZ2dwbG90KGlwYykgKw0KICBhZXMoeCA9IHBlcmlvZG8sIHkgPSBtb250b19yZWFsKSArDQogIGdlb21fbGluZSgpICsNCiAgZ2VvbV9wb2ludCgpICsNCiAgbGFicygNCiAgICB4ID0gIiAiLA0KICAgIHkgPSAiICIsDQogICAgdGl0bGUgPSAiRXZvbHVjacOzbiBkZSBsb3MgbW9udG9zIGRlbCBwcm9ncmFtYSAoMjAyMC0yMDIyKSIsDQogICAgY2FwdGlvbiA9ICJGdWVudGU6IEVsYWJvcmFjacOzbiBwcm9waWEgZW4gYmFzZSBhbCBJUEMgZGUgSU5ERUMiLA0KICApICsNCiAgZ2d0aGVtZXM6OnRoZW1lX3BhbmRlcigpICsNCiAgdGhlbWUoDQogICAgbGVnZW5kLnBvc2l0aW9uID0gInRvcCIsDQogICAgcGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTVMLCBmYWNlID0gImJvbGQiLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGp1c3QgPSAwLjUpLA0KICAgIHBsb3Quc3VidGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDE0TCwgZmFjZSA9ICJpdGFsaWMiLCBoanVzdCA9IDAuNSkNCiAgKSArDQogIHNjYWxlX3hfZGF0ZShkYXRlX2xhYmVscyA9ICIlbS0leSIsIGRhdGVfYnJlYWtzID0gIjMgbW9udGhzIikgKw0KICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzID0gY29tbWEsIGxpbWl0cyA9IGMoMTUwMCw0MDAwKSkNCg0KDQpnZ3NhdmUocGxvdCA9IGxpbmVhX2lwYywgImdyYWZpY29zL2xpbmVhX2lwYy5wbmciKQ0KDQpnZ3Bsb3RseShsaW5lYV9pcGMpDQpgYGANCg0KaHR0cHM6Ly93d3cuaW5kZWMuZ29iLmFyL2luZGVjL3dlYi9OaXZlbDQtVGVtYS0zLTUtMzENCg0KDQpgYGB7cn0NCg0KaXBjICAlPiUgIyBDb252aWVydGUgJ3BlcmlvZG8nIGEgZm9ybWF0byBkZSBmZWNoYQ0KICBncm91cF9ieSgiQcOxbyIgPSBsdWJyaWRhdGU6OnllYXIocGVyaW9kbykpICU+JQ0KICBzdW1tYXJpc2UoDQogICAgIlByaW1lciBwZXJpb2RvIiA9IGZpcnN0KGZvcm1hdC5EYXRlKHBlcmlvZG8sIiViICVZIikpLA0KICAgICN1bHRpbW9fcGVyaW9kbyA9IG1heChwZXJpb2RvKSwNCiAgICAiUHJpbWVyIG1vbnRvIiA9IHBhc3RlMCgiIixmaXJzdChtb250bykpLA0KICAgICN1bHRpbW9fbW9udG8gPSBsYXN0KG1vbnRvKSwNCiAgICAiTW9udG8gZW4gcHJlY2lvcyByZWFsZXMiID0gcGFzdGUwKCIiLHJvdW5kKGZpcnN0KG1vbnRvX3JlYWwpLDIpKSwNCiAgICAjdWx0aW1vX21vbnRvX3JlYWwgPSBsYXN0KG1vbnRvX3JlYWwpDQogICkgJT4lIA0KICBndCgpICU+JQ0KICB0YWJfaGVhZGVyKA0KICAgIHRpdGxlID0gIk1vbnRvcyBwb3IgYcOxbyIsDQogICAgc3VidGl0bGUgPSAiUHJpbWVyIHBlcsOtb2RvIGRlIGNhZGEgYcOxbyINCiAgKSANCmBgYA0KDQo=